package com.examlpe.cels.dao.impl;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.List;
import com.examlpe.cels.dao.ITestRecordDao;
import com.examlpe.cels.entity.TestRecord;

public class TestRecordDaoImpl implements ITestRecordDao{

	//持久化测试记录，每次都要先读取已经存在的历史记录，
	//并把此record追加到那个集合中，在持久化那个集合
	//@Override
	public void write(List<TestRecord> record, String fileName) {
		// TODO 把测试记录持久化到指定文件中
		ObjectOutputStream oos =null;
		try {
			//1.根据文件创建对象输出流
			oos = new ObjectOutputStream(new FileOutputStream(fileName));
			//2.调用持久化对象的方法
			oos.writeObject(record);
			//3.处理IO流异常
		} catch (IOException e) {
			System.out.println(e.getMessage());
		} finally {
			if(oos!=null) {
				try {
					oos.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		
	}

	//加载所有的已保存的测试记录，并返回整个List
	//@Override
	public List<TestRecord> read(String fileName) {
		// TODO 从文件是读取持久化的对象数据
		ObjectInputStream ois = null;
		List<TestRecord> record = null;
		try {
			//1.根据文件创建对象输出流
			ois = new ObjectInputStream(new FileInputStream(fileName));
			//2.调用读取对象的方法，并做强制类型转换
			record = (List<TestRecord>) ois.readObject();
			//3.处理IO异常
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}finally {
			if(ois!=null) {
				try {
					ois.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		//4.返回
		return record;
	}
	
	
}
